package com.cskaoyan.javase.basic._6block;

/**
 * 代码块的概念:
 * 什么是代码块？
 * 代码块的定义是：由若干条Java语句组成，并且用一对大括号括起来的结构，叫做代码块。
 * 很显然，我们写的main方法的方法体的大括号就是一个代码块。
 *
 * 扩展:
 * 在Java中代码块有以下几种:
 *      1.方法的方法体的大括号是一个代码块
 *      2.类体中的大括号
 *          解释: 类体指的是类名后面跟的一个大括号,包含整个类的所有内容
 *          但是注意类体不算代码块
 *      3.以上两种情况代码块中的大括号,也是一个代码块(代码块可以嵌套)
 *
 * 那么代码块有什么用处呢？主要是：
 *      1.代码块决定了块中的变量的作用域，也就是块中的变量只在当前块中生效。
 *          这意味着同一个代码块中，不可能有同名的变量。
 *      2.定义在块中的变量，被块限制了作用域，称之为局部变量。
 *
 *
 *
 * @since 11:45
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    {
        // 定义局部变量a
        int a = 10;
        // 代码块
        {
            // 代码块
            // int a = 100;
            int b = 10;
        }
        int b = 10;
    }

    public static void main(String[] args) {
        // 这个大括号就是代码块
        {
            // 代码块
        }
        if (true) {
            // 代码块
            // num是属于if的局部变量
            int num = 10;
        }
        // System.out.println(num);
        int num = 100;
        for (; ; ) {
            // 代码块
            // int num = 10;
            int num2 = 10;
        }
    }
}
